/**
 * 猪哥亮开源
 * 作者 猪哥亮
 * 邮箱 1030681978@qq.com
 */
package cn.jnetty.ioc.factorys.support;

import cn.jnetty.ioc.factorys.config.BeanDefinition;

/**
 * @author 猪哥亮
 * @email 1030681978@qq.com
 * @date 2020/7/6 16:25
 * 描述： 
 *
 */
public class GenericBeanDefinition implements BeanDefinition, Cloneable{
    private Class<?> beanClass;
    private String beanClassName;
    private String parentName;
    private boolean isLazyInit;
    private boolean isSingleton;
    private boolean isPrototype;
    private boolean isAbstract;
    private String factoryBeanName;
    private Object obj;

    public String getParentName() {
        return parentName;
    }

    public void setSingleton(boolean singleton) {
        isSingleton = singleton;
    }

    public void setPrototype(boolean prototype) {
        isPrototype = prototype;
    }

    public void setAbstract(boolean anAbstract) {
        isAbstract = anAbstract;
    }

    public void setFactoryBeanName(String factoryBeanName) {
        this.factoryBeanName = factoryBeanName;
    }

    public Object getObj() {
        return obj;
    }

    public void setObj(Object obj) {
        this.obj = obj;
    }

    public void setBeanClass(Class<?> clazz){
        this.beanClass = clazz;
    }
    public Class<?> getBeanClass(){
        return beanClass;
    }

    @Override
    public String getBeanClassName() {
        return beanClassName;
    }

    @Override
    public void setBeanClassName(String beanClassName) {
        this.beanClassName = beanClassName;
    }

    @Override
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }

    @Override
    public void setLazyInit(boolean lazyInit) {
        this.isLazyInit = lazyInit;
    }

    @Override
    public boolean isLazyInit() {
        return isLazyInit;
    }

    @Override
    public String getFactoryBeanName() {
        return factoryBeanName;
    }

    @Override
    public boolean isSingleton() {
        return isSingleton;
    }

    @Override
    public boolean isPrototype() {
        return isPrototype;
    }

    @Override
    public boolean isAbstract() {
        return isAbstract;
    }

    @Override
    public BeanDefinition getOriginatingBeanDefinition() {
        return null;
    }
}
